﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GL知识库
{
    //委托的基本调用，有参无参，有返回值
    //委托变量和方法的参数和返回值类型必须一一对应
   
    //class Program
    //{
    //    delegate void Add();
    //    delegate void Sub(int i, int j);
    //    delegate int MaxId(int i, int j);
    //    static void Main(string[] args)
    //    {
    //        Console.WriteLine("------委托简单调用-----");
    //        Add add = new Add(AddMethod01);
    //        add += new Add(AddMethod02);
    //        add();//无参没有返回值

    //        Sub sub = new Sub(SubMethod01);
    //        sub += new Sub(SubMethod02);
    //        sub(10, 10);//带参数的

    //        MaxId maxid = new MaxId(MaxIdMethod02);
    //        int result = maxid(10, 20);//带参数同时带返回值
    //        Console.WriteLine(result);
    //        Console.ReadKey();
    //    }
    //    static void AddMethod01()
    //    {
    //        Console.WriteLine("AddMethod01被调用");
    //    }
    //    static void AddMethod02()
    //    {
    //        Console.WriteLine("AddMethod02被调用");
    //    }
    //    static void SubMethod01(int i, int j)
    //    {
    //        Console.WriteLine("SubMethod01被调用,{0}", i + j);
    //    }
    //    static void SubMethod02(int i, int j)
    //    {
    //        Console.WriteLine("SubMethod02被调用,{0}", i + j + 10);
    //    }
    //    static int MaxIdMethod02(int i, int j)
    //    {
    //        return i > j ? i : j;
    //    }
    //}
     
}
